package br.com.cadastro.bean;

import br.com.cadastro.DAO.UsuarioDAO;
import br.com.cadastro.entity.Usuario;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class UsuarioBean implements Serializable {
    private String senhaAtual;
    private String novaSenha;
    private String confirmarNovaSenha;

    private Usuario usuario = new Usuario();
    private UsuarioDAO usuarioDao = new UsuarioDAO();
    private List list = new ArrayList();

    public UsuarioBean() {
    }

    public List<Usuario> listarUsuarios() {
        List<Usuario> lista;
        lista = this.usuarioDao.getList();
        return lista;
    }

    public String inserirUsuario() {
        usuarioDao.addUsuario(usuario);
        usuario.setUsuario("");
        usuario.setSenha("");
        usuario.setPermissao("");
        return "cadastrarUsuario";
    }

    public void removeUsuario(Usuario u) {
        this.usuarioDao.removeUsuario(u);
    }

    public List getList() {
        list.add("Normal");
        list.add("Administrador");
        return list;
    }

    public String caminhoTrocarSenha(Usuario u) {
        this.usuario = u;
        return "changeSenha";
    }

    public String trocarSenha() {

        if (usuario.getSenha().equals(getSenhaAtual())) {
            if (getConfirmarNovaSenha().equals(getNovaSenha())) {
                usuario.setSenha(getNovaSenha());
                setSenhaAtual(null);
                setNovaSenha(null);
                setConfirmarNovaSenha(null);
                
                getUsuarioDao().changeSenha(usuario);

                usuario.setPermissao(null);
                usuario.setSenha(null);

                usuario.setUsuario(null);
                return "cadastrarUsuario";
            }
        } else {
            return "";
        }
        return "";
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public UsuarioDAO getUsuarioDao() {
        return usuarioDao;
    }

    
    public String getSenhaAtual() {
        return senhaAtual;
    }

    public void setSenhaAtual(String senhaAtual) {
        this.senhaAtual = senhaAtual;
    }

    public String getNovaSenha() {
        return novaSenha;
    }

    public void setNovaSenha(String novaSenha) {
        this.novaSenha = novaSenha;
    }

    public String getConfirmarNovaSenha() {
        return confirmarNovaSenha;
    }

    public void setConfirmarNovaSenha(String confirmarNovaSenha) {
        this.confirmarNovaSenha = confirmarNovaSenha;
    }

}
